const express = require('express');
const expressJoi = require('@escook/express-joi');
// 导入解析 formdata 格式表单数据的包
const multer = require('multer');
const path = require('path');
const article_handler = require('../router_handler/article');
const router = express.Router();
const { add_article_schema } = require('../schema/article');

// 创建 multer 的实例对象，通过 dest 属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') });

// 发布新文章的路由
// upload.single() 是一个局部生效的中间件，用来解析 FormData 格式的表单数据
// 将文件类型的数据，解析并挂载到 req.file 属性中
// 将文本类型的数据，解析并挂载到 req.body 属性中
router.post('/add', upload.single('cover_img'), expressJoi(add_article_schema), article_handler.addArticle);
// 获取文章列表
router.get('/list', article_handler.getArticleList);
// 根据id删除文章
router.delete('/deleteart/:id', article_handler.deleteArticle);
// 根据id获取文章
router.get('/getArticle/:id', article_handler.getArticle);
// 根据id更新文章
router.post('/update', article_handler.updateArticle);

module.exports = router;
